#ifndef __HAVE_CONSTANTS
#define __HAVE_CONSTANTS

const int NUM_GHOSTS = 4;
// В оригинал, TILE_SIZE = 8
// Забележка: Много внимавай ако ще сменяш TILE_SIZE.
const int TILE_SIZE = 20;
const int ACTOR_SIZE = 34;

const int COLS = 28;
const int ROWS = 36;
const int SCREEN_WIDTH = COLS * TILE_SIZE;
const int SCREEN_HEIGHT = ROWS * TILE_SIZE;

const int SCREEN_BPP = 32;
const int FRAMES_PER_SECOND = 60;


// TODO: namespace CHARS
const char CHR_WALL = '#';
const char CHR_BASE = 'B';
const char CHR_DOT = '.';
const char CHR_SPACE = ' ';
const char CHR_ENERGIZER = 'E';

// Посоките, в които може да се движи един герой.
// Забележка: редът им тук е *важен*
// TODO: namespace directions ?
enum directions {UP, LEFT, RIGHT, DOWN, NONE};
enum ghost_states {NORMAL, SCARED, EATEN, SCATTER, ELROY1, ELROY2};

// TODO: namespace STYLESHEET
// Това са редовете за коректно създаден tile_spritesheet
enum tile_sheet_lines {DOTS, WALLS};
// Това са редовете за коректно създаден actor_spritesheet
enum actor_sheet_lines {PACMAN, BLINKY, PINKY, INKY, CLYDE, BLUE, EYES, WHITE};

enum collision_results {NO_COLLISION, GHOST_EATEN, PAC_EATEN};

enum TileType {DOT, SPACE, ENERGIZER, WALL, BASE };

enum transparency {non_transparent, transparent};

const char direction[5][2] = {{0,-1},
                        {-1,0},
                        {1,0},
                        {0,1},
                        {0,0}};

const int ANIMATION_FRAMES = 2;

#endif
